/** * ghapi * A Java wrapper for the GitHub API * * Copyright (c) 2010 Idlesoft. * * Licensed under the New BSD License. */ package org.idlesoft.libraries.ghapi; import java.security.InvalidParameterException; public class Organizations extends APIAbstract { public Organizations(GitHubAPI a) { super(a); } public Response info(String organization) { return HTTPGet("https://github.com/api/v2/json/organizations/" + encode(organization)); } public Response update(String organization, String name, String email, String blog, String company, String location, String billing_email) { String post = ""; if (!name.equals("")) { post += "organization[name]=" + name; } if (!email.equals("")) { if (post.equals("")) { post += "&"; } post += "organization[email]=" + email; } if (!blog.equals("")) { if (post.equals("")) { post += "&"; } post += "organization[blog]=" + blog; } if (!company.equals("")) { if (post.equals("")) { post += "&"; } post += "organization[company]=" + company; } if (!location.equals("")) { if (post.equals("")) { post += "&"; } post += "organization[location]=" + location; } if (!billing_email.equals("")) { if (post.equals("")) { post += "&"; } post += "organization[billing_email]=" + billing_email; } return HTTPPost("https://github.com/api/v2/json/organizations/" + encode(organization), encode(post)); } public Response userOrganizations(String user) { return HTTPGet("https://github.com/api/v2/json/organizations/" + encode(user)); } public Response myOrganizations() { return HTTPGet("https://github.com/api/v2/json/organizations"); } public Response repositories() { return HTTPGet("https://github.com/api/v2/json/organizations/repositories"); } public Response publicRepositories(String organization) { return HTTPGet("https://github.com/api/v2/json/organizations/" + encode(organization) + "/public_repositories"); } public Response publicMembers(String organization) { return HTTPGet("https://github.com/api/v2/json/organizations/" + encode(organization) + "/public_members"); } public Response listTeams(String organization) { return HTTPGet("https://github.com/api/v2/json/organizations/" + encode(organization) + "/teams"); } public Response createTeam(String organization, String name, String permission, String... repo_names) { if (organization.equals("") || name.equals("") || permission.equals("") || repo_names.length == 0) { throw new InvalidParameterException("Missing information"); } String post = "team[name]=" + encode(name) + "&team[permission]=" + encode(name); for (int i = 0; i < repo_names.length; i++) { post += "&team[repo_names][]=" + encode(repo_names[i]); } return HTTPPost("https://github.com/api/v2/json/organizations/" + encode(organization) + "/teams", post); } public Response teamInfo(int teamId) { return HTTPGet("https://github.com/api/v2/json/teams/" + teamId); } public Response teamMembers(int teamId) { return HTTPGet("https://github.com/api/v2/json/teams/" + teamId + "/members"); } public Response teamRepositories(int teamId) { return HTTPGet("https://github.com/api/v2/json/teams/" + teamId + "/repositories"); } }